package com.jl15988.simpletools.appcore.strategy;

import org.springframework.web.multipart.MultipartFile;

import java.io.InputStream;

/**
 * 文件存储策略接口
 *
 * @author jl15988
 */
public interface StorageStrategy {

    /**
     * 上传文件
     *
     * @param file 文件
     * @param path 存储路径
     * @return 文件访问URL
     */
    String uploadFile(MultipartFile file, String path);

    /**
     * 上传文件
     *
     * @param inputStream 输入流
     * @param fileName    文件名
     * @param path        存储路径
     * @return 文件访问URL
     */
    String uploadFile(InputStream inputStream, String fileName, String path);

    /**
     * 删除文件
     *
     * @param path 文件路径
     * @return 是否删除成功
     */
    boolean deleteFile(String path);

    /**
     * 获取文件访问URL
     *
     * @param path 文件路径
     * @return 文件访问URL
     */
    String getFileUrl(String path);
} 